# 更好的方案是使用requests。比urllid好，它是一个Python第三方库，处理URL资源特别方便。
import requests

r = requests.get('https://www.baidu.com/')  # 百度首页
print(r.status_code)
print(r.text)
# requests自动检测编码，可以使用encoding属性查看：
print(r.encoding)
# 是文本还是二进制内容，我们都可以用content属性获得bytes对象：
print(r.content)
# 对于带参数的URL，传入一个dict作为params参数：
r2 = requests.get('https://www.douban.com/search', params={'q': 'python', 'cat': '1001'})
print(r2.url)
# 对于特定类型的响应，例如JSON，可以直接获取：
print('*******************************JSON数据转换**********************************************')
r3 = requests.get(
    'https://api.caiyunapp.com/v2/TAkhjf8d1nlSlspN/121.6544,25.1552/realtime.json')
print(r3.json())
# 传入HTTP Header时，我们传入一个dict作为headers参数：
r4 = requests.get('https://www.douban.com/',
                  headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'})
print(r4.text)
# 发送POST请求，只需要把get()方法变成post()，然后传入data参数作为POST请求的数据：
r5 = requests.post('https://www.wanandroid.com/user/login',
                   data={'username': 'abc@example.com', 'password': '123456'})
print(r5.json())


# 要指定超时，传入以秒为单位的timeout参数：
# r5 = requests.get('https://www.wanandroid.com/user/login', timeout=0.05)  # 2.5秒后超时

def logTimeOut(url, timeout):
    try:
        requests.get(url, timeout=timeout)
    except Exception as e:
        print('错误的原因是:', str(e))


logTimeOut('https://www.wanandroid.com/user/login', 0.05)
# 请求中传入Cookie，只需准备一个dict传入cookies参数：
cs = {'token': '12345', 'status': 'working'}
r6 = requests.get('https://www.wanandroid.com/user/login', cookies=cs)
print(r6)
